//
// Description: 5940. 从数组中移除最大值和最小值
// Created by Loading on 2021/11/28.
//

#include <bits/stdc++.h>

using namespace std;

int minimumDeletions(vector<int> &nums) {
    int n = nums.size();
    if (n <= 2) {
        return n;
    }
    // 取得最小值和最大值下标
    int x = min_element(nums.begin(), nums.end()) - nums.begin();
    int y = max_element(nums.begin(), nums.end()) - nums.begin();

    // 让最小值的下标小于最大值下标，便于计算
    if (x > y) {
        swap(x, y);
    }

    /* 贪心策略：1，全部从左侧移除；2，全部从右侧移除；3、左右分别移除 */
    return min({y + 1, n - x, n - y + x + 1});
}

int main() {
    vector<int> nums = {2, 10, 7, 5, 4, 1, 8, 6};
    int res = minimumDeletions(nums);
    cout << res << endl;

    return 0;
}